home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / include / ewl / ewl_macros.h < prev    next >
C/C++ Source or Header  |  2006-01-09  |  1KB  |  71 lines

  1.  
  2. #ifndef __EWL_MACROS_H__
  3. #define __EWL_MACROS_H__
  4.  
  5. /**
  6.  * @file ewl_macros.h
  7.  * @defgroup Ewl_Macros Macros: Useful Macros Used Internally and Available Externally
  8.  * Defines a variety of utility macros.
  9.  */
  10.  
  11. #undef NEW
  12. /**
  13.  * @def NEW(type, num)
  14.  * Allocates memory of @a num elements of sizeof(@a type).
  15.  */
  16. #define NEW(type, num) calloc(num, sizeof(type));
  17.  
  18. #undef REALLOC
  19. /**
  20.  * @def REALLOC(dat, type, num)
  21.  * Reallocates memory pointed to by @a dat to @a num elements of sizeof(@a
  22.  * type).
  23.  */
  24. #define REALLOC(dat, type, num) \
  25. { \
  26.     if (dat) \
  27.       { \
  28.         dat = realloc(dat, sizeof(type) * num); \
  29.       } \
  30. }
  31.  
  32. #undef FREE
  33. /**
  34.  * @def FREE(dat)
  35.  * Free the data pointed to by @a dat and it to NULL.
  36.  */
  37. #define FREE(dat) \
  38. { \
  39.     free(dat); dat = NULL; \
  40. }
  41.  
  42.  
  43. #undef IF_FREE
  44. /**
  45.  * @def IF_FREE(dat)
  46.  * If @a dat is non-NULL, free @a dat and assign it to NULL.
  47.  */
  48. #define IF_FREE(dat) \
  49. { \
  50.     if (dat) FREE(dat); \
  51. }
  52.  
  53. #undef ZERO
  54. /**
  55.  * @def ZERO(ptr, type, num)
  56.  * Set the first @a num elements of sizeof(@a type) pointed to by @a ptr to
  57.  * zero.
  58.  */
  59. #define ZERO(ptr, type, num) ptr = memset(ptr, 0, sizeof(type) * (num))
  60.  
  61. #ifndef MIN
  62. #define MIN(x, y) (((x) > (y)) ? (y) : (x))
  63. #endif
  64.  
  65. #ifndef MAX
  66. #define MAX(x, y) (((x) > (y)) ? (x) : (y))
  67. #endif
  68.  
  69. #endif                /* __EWL_MACROS_H__ */
  70.  
  71.